<!DOCTYPE HTML>
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <meta name="robots" content="index, follow" />
    <meta name="author" content="Paul Bender" />
    <meta name="keywords" content="MiniMyth,Linux,PVR,MythTV,diskless,ION,VDPAU" />
    <meta name="description" content="Instructions on how to configure MiniMyth." />
    <title>MiniMyth - Documents - Configuration Instructions</title>
    <link href="css/minimyth.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div class="main">
      <div class="header">
        <div class="heading">MiniMyth from <a href="http://www.minimyth.org/">minimyth.org</a></div>
        <div class="menu">
          <span class="menuItemFirst"><a href="index.html">Home</a></span>
          <span class="menuItem"     ><a href="document.html">Documents</a></span>
          <span class="menuItem"     >Configure</span>
        </div>
      </div>
      <div class="middle">
        <div class="heading">Configuration Instructions</div>
        <div id="toc" class="section">
          <div class="heading">Table of contents</div>
          <ul>
            <li><a href="#general">General</a></li>
            <li><a href="#bootline">Configuration obtained from the boot line</a></li>
            <li><a href="#dhcp">Configuration obtained from the DHCP server</a></li>
            <li><a href="#location">Location of configuration files</a></li>
            <li><a href="#format">Format of configuration files</a></li>
            <li><a href="#minimyth_conf">Configuration obtained from the MiniMyth configuration file</a></li>
            <li><a href="#minimyth_pm">Configuration obtained from the MiniMyth configuration package</a></li>
            <li><a href="#misc">Configuration obtained from miscellaneous configuration files</a></li>
          </ul>
        </div>
        <div id="general" class="section">
          <div class="heading">General</div>
          <p>
            MiniMyth obtains configuration from the following places:
          </p>
          <ul>
            <li><a href="#bootline">the boot line</a>,</li>
            <li><a href="#dhcp">the DHCP server</a>,</li>
            <li><a href="#minimyth_conf">the MiniMyth configuration file</a>,</li>
            <li><a href="#minimyth_pm">the MiniMyth configuration package</a>, and</li>
            <li><a href="#misc">miscellaneous configuration files</a>.</li>
          </ul>
          <p>
            Ideally, the MiniMyth configuration package and the miscellaneous configuration files should not be needed.
            However, MiniMyth still lacks configuration files for many remote control receivers, remote controls, and LCD and VFD displays.
            In addition, MiniMyth still lacks the flexibility needed for some X Window System configurations.
            If you have configuration files for your hardware and setup that you would like included in MiniMyth, then
            <a href="http://www.minimyth.org/forum/">let us know</a>
            and provide a list of you hardware including vendor and model,
            the outputs of the commands 'lspci&#160;-mn' and 'lsusb' with all you hardware connected,
            and the configuration files you want included.
          </p>
        </div>
        <div id="bootline" class="section">
          <div class="heading">Configuration obtained from the boot line</div>
          <p>
            MiniMyth can obtain configuration from the
            <a href="document-boot.html#bootline">boot line</a>.
            The following boot line parameters are of some interest:
          </p>
          <ul>
            <li>
              Linux parameters:
              <dl>
                <dt id="debug"><strong>debug</strong></dt>
                <dd>
                  <p>
                    Enables kernel debug logging and disables the boot splash screen.
                  </p>
                </dd>
                <dt id="irqpoll"><strong>irqpoll</strong></dt>
                <dd>
                  <p>
                    Works around IRQ problems with the ASUS A8N-VM CSM motherboard
                    that can cause a kernel oops when the nvidia kernel driver is loaded,
                    resulting in X not starting correctly.
                  </p>
                </dd>
              </dl>
            </li>
            <li>
              MiniMyth variables:
              <dl>
                <dt id="MM_DEBUG"><strong>MM_DEBUG</strong></dt>
                <dd>
                  <p>
                    Enables MiniMyth debug logging.
                    Valid values are "yes" and "no", with "no" being the default.
                  </p>
                </dd>
                <dt id="MM_MINIMYTH_BOOT_DEVICE"><strong>MM_MINIMYTH_BOOT_DEVICE</strong></dt>
                <dd>
                  <p>
                    Sets the device that will be mounted as the local MiniMyth boot directory ('/minimyth').
                    Valid values are any device in the directory "/dev/disk", with "/dev/disk/by-label/minimyth" being the default.
                  </p>
                  <p>
                    While MiniMyth will mount the device specified by MM_MINIMYTH_BOOT_DEVICE as '/minimyth',
                    it will not use '/minimyth' as the MiniMyth boot directory unless
                    <a href="document-minimyth_conf.html#MM_MINIMYTH_BOOT_URL">MM_MINIMYTH_BOOT_URL</a>='file:/minimyth/'.
                  </p>
                </dd>
              </dl>
              <p>
                In addition to
                <a href="#MM_DEBUG">MM_DEBUG</a> and
                <a href="#MM_MINIMYTH_BOOT_DEVICE">MM_MINIMYTH_BOOT_DEVICE</a>
                you can include any variables found in the
                <a href="document-minimyth_conf.html">MiniMyth Configuration File</a>
                on the boot line.
                However, with the exception of some of the
                <a href="document-minimyth_conf.html#MM_DHCP">DHCP override variables</a>,
                there is little reason to include these variables on the boot line.
              </p>
              <p>
                Unlike in the MiniMyth configuration file where MiniMyth variable values should be single quoted ('),
                MiniMyth variable values on the boot line must either be unquoted or double quoted (").
              </p>
            </li>
          </ul>
        </div>
        <div id="dhcp" class="section">
          <div class="heading">Configuration obtained from the DHCP server</div>
          <p>
            MiniMyth obtains some configuration from the DHCP server.
          </p>
          <dl>
            <dt id="dhcp-yiaddr"><strong>Address</strong></dt>
            <dd>
              <p>
                The MiniMyth system's
                <a href="http://en.wikipedia.org/wiki/IP_address">IPv4 address</a>.
                MiniMyth requires an IPv4 address for communicating.
                Therefore, if MiniMyth does not obtain an IPv4 address,
                then MiniMyth will abort its boot process and output an error.
              </p>
              <p>
                If you do not have an appropriate DHCP server on your network, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_ADDRESS">MM_DHCP_ADDRESS</a>
                DHCP override variable on the
                <a href="#bootline">boot line</a>
                in order to manually configure the MiniMyth system's address.
                If you provide
                <a href="document-minimyth_conf.html#MM_DHCP_ADDRESS">MM_DHCP_ADDRESS</a>,
                then MiniMyth
                will assume that you are manually configuring all configuration normally obtained from the DHCP server and
                will not start the DHCP client.
              </p>
            </dd>
            <dt id="dhcp-broadcast-address"><strong>Broadcast Address</strong></dt>
            <dd>
              <p>
                The MiniMyth system's
                <a href="http://en.wikipedia.org/wiki/Broadcast_address">IPv4 broadcast address</a>.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 28 (0x1c), which is supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should set the 'broadcast-address' option in your dhcpd.conf file.
              </p>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_BROADCAST">MM_DHCP_BROADCAST</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
              </p>
            </dd>
            <dt id="dhcp-subnet-mask"><strong>Subnet Mask</strong></dt>
            <dd>
              <p>
                The MiniMyth system's
                <a href="http://en.wikipedia.org/wiki/Subnetwork">IPv4 subnet mask</a>.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 1 (0x01), which is supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should set the 'subnet-mask' option in your dhcpd.conf file.
              </p>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_SUBNET_MASK">MM_DHCP_SUBNET_MASK</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
              </p>
            </dd>
            <dt id="dhcp-routers"><strong>Routers</strong></dt>
            <dd>
              <p>
                A space separated list of 
                <a href="http://en.wikipedia.org/wiki/Default_gateway">router (a.k.a. gateway)</a>
                IPv4 addresses that the MiniMyth system will use to communicate with hosts not on the local subnet.
                MiniMyth does not require that any routers,
                unless the MiniMyth system needs to communicate with hosts not on the local subnet.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 3 (0x03), which is supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should set the 'routers' option in your dhcpd.conf file.
              </p>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_ROUTERS">MM_DHCP_ROUTERS</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
              </p>
            </dd>
            <dt id="dhcp-host-name"><strong>Host Name</strong></dt>
            <dd>
              <p>
                The MiniMyth system's
                <a href="http://en.wikipedia.org/wiki/Hostname">host name</a>.
                MiniMyth requires a host name for storing/retrieving the MythTV settings in/from the MythTV's database.
                Therefore, if MiniMyth does not obtain a host name,
                then MiniMyth will abort its boot process and output an error.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 12 (0x0c), which is supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should enable the 'use-host-decl-names' option and set the 'host' and 'hardware' options in your dhcpd.conf file
              </p>
              <p>
                In addition to using the host name when making MythTV database accesses,
                MiniMyth can use the host name when retrieving host specific configuration files.
              </p>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_HOST_NAME">MM_DHCP_HOST_NAME</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
              </p>
            </dd>
            <dt id="dhcp-domain-name"><strong>Domain Name</strong></dt>
            <dd>
              <p>
                The MiniMyth system's
                <a href="http://en.wikipedia.org/wiki/Domain_name">domain name</a>.
                MiniMyth does not require a domain name,
                but it can be useful when using DNS to resolve local network hostnames to IPv4 addresses.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 15 (0x0f), which is supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should set the 'domain-name' option in your dhcpd.conf file.
              </p>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_DOMAIN_NAME">MM_DHCP_DOMAIN_NAME</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
              </p>
            </dd>
            <dt id="dhcp-domain-name-servers"><strong>Domain Name Servers</strong></dt>
            <dd>
              <p>
                A space separated list of
                <a href="http://en.wikipedia.org/wiki/Domain_name_system">Domain Name System (DNS)</a>
                server IPv4 addresses that the MiniMyth system will use to resolve DNS names.
                MiniMyth needs a DNS server to resolve Internet host name to Internet Protocol addresses.
                Therefore, if MiniMyth does not obtain a DNS server address,
                then MiniMyth will abort its boot process and output an error message.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 6 (0x06), which is supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should set the 'domain-name-servers' option in your dhcpd.conf file.
              </p>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_DOMAIN_NAME_SERVERS">MM_DHCP_DOMAIN_NAME_SERVERS</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
              </p>
            </dd>
            <dt id="dhcp-ntp-servers"><strong>NTP Servers</strong></dt>
            <dd>
              <p>
                A space separated list of
                <a href="http://en.wikipedia.org/wiki/Network_Time_Protocol">Network Time Protocol (NTP)</a>
                server IPv4 addresses that the MiniMyth system will use to synchronize its clock.
                MiniMyth's clock needs to be synchronized to the MythTV backend's clock or
                fastforward, rewind and commercial skip will fail.
                Therefore, if MiniMyth does not obtain an NTP server address,
                then MiniMyth will abort its boot process and output an error message.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 42 (0x2a), which is supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should set the 'ntp-servers' option in your dhcpd.conf file.
              </p>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_NTP_SERVERS">MM_DHCP_NTP_SERVERS</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
                If you specify
                <a href="document-minimyth_conf.html#MM_DHCP_NTP_SERVERS">MM_DHCP_NTP_SERVERS</a>
                in your
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                and if either your DHCP server returns a valid list of Domain Name Servers
                or you specify
                <a href="document-minimyth_conf.html#MM_DHCP_DOMAIN_NAME_SERVERS">MM_DHCP_DOMAIN_NAME_SERVERS</a>
                on the
                <a href="#bootline">boot line</a>,
                then
                <a href="document-minimyth_conf.html#MM_DHCP_NTP_SERVERS">MM_DHCP_NTP_SERVERS</a>
                may contain either IPv4 addresses or fully qualified domain names.
              </p>
            </dd>
            <dt id="dhcp-log-servers"><strong>Log Servers</strong></dt>
            <dd>
              <p>
                A list of
                <a href="http://en.wikipedia.org/wiki/Syslog">syslog</a>
                server IPv4 addresses to which MiniMyth will log.
                MiniMyth will log to the first log server in the list.
                If MiniMyth does not obtain a log server address,
                then MiniMyth will log locally.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 7 (0x07), which is supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should set the 'log-servers' option in your dhcpd.conf file.
              </p>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_LOG_SERVERS">MM_DHCP_LOG_SERVERS</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
                If you specify
                <a href="document-minimyth_conf.html#MM_DHCP_LOG_SERVERS">MM_DHCP_LOG_SERVERS</a>
                in your
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                and if either your DHCP server returns a valid list of Domain Name Servers
                or you specify
                <a href="document-minimyth_conf.html#MM_DHCP_DOMAIN_NAME_SERVERS">MM_DHCP_DOMAIN_NAME_SERVERS</a>
                on the
                <a href="#bootline">boot line</a>,
                then
                <a href="document-minimyth_conf.html#MM_DHCP_LOG_SERVERS">MM_DHCP_LOG_SERVERS</a>
                may contain either IPv4 addresses or fully qualified domain names.
              </p>
            </dd>
            <dt id="dhcp-tcode"><strong>TCode</strong></dt>
            <dd>
              <p>
                The tz database
                (a.k.a. the <a href="http://en.wikipedia.org/wiki/Zoneinfo">zoneinfo</a> database)
                name of your MiniMyth system's
                <a href="http://en.wikipedia.org/wiki/Time_zone">time zone</a>.
                MiniMyth's time zone needs to be correct or fastforward, rewind and commercial skip will fail.
                Therefore, if MiniMyth does not obtain time zone,
                then MiniMyth will abort its boot process and output an error message.
              </p>
              <p>
                The
                <a href="http://www.iana.org/assignments/bootp-dhcp-parameters/">DHCP option</a>
                is 101 (0x65), which is not supported by
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>.
                Therefore, if your DHCP server is
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you should define and set the 'tcode' option in your dhcpd.conf file.
              </p>
              <p>
                As mentioned above,
                if you want to use the 'tcode' option in
                <a href="https://www.isc.org/software/dhcp">ISC DHCP</a>,
                then you will need to define it in your dhcpd.conf file.
                As defined in
                <a href="http://www.rfc-editor.org/rfc/rfc4833.txt">RFC 4833</a>,
                the 'tcode' option is a string identified by the tag 101 (0x65).
                As explained in the
                <a href="http://www.linuxmanpages.com/man5/dhcp-options.5.php">dhcp-options</a>
                man page,
                this new option is defined by adding the following line to
                <a href="http://www.linuxmanpages.com/man5/dhcpd.conf.5.php">dhcpd.conf</a>:
              </p>
<pre>option tcode code 101 = text;</pre>
              <p>
                After that, you can use 'tcode' as you would any other option,
                with the option value being the tz database name for your time zone.
                For example:
              </p>
<pre>option tcode "America/Los_Angeles";</pre>
              <p>
                If you DHCP server does not support this option, then you can use the
                <a href="document-minimyth_conf.html#MM_DHCP_TCODE">MM_DHCP_TCODE</a>
                DHCP override variable either on the
                <a href="#bootline">boot line</a>
                or in the
                <a href="#minimyth_conf">MiniMyth configuration file</a>
                instead.
              </p>
            </dd>
          </dl>
        </div>
        <div id="location" class="section">
          <div class="heading">Location of configuration files</div>
          <p>
            MiniMyth looks for configuration files and packages in the MiniMyth configuration directories.
            There are two MiniMyth configuration directories:
            the read-only configuration directory and the read-write configuration directory.
          </p>
          <p>
            The MiniMyth read-only configuration directory is named 'conf' and is required.
            This directory (actually a sub-directory of this directory) is where you would put configuration files that you create.
            This directory may be read-only.
          </p>
          <p>
            The MiniMyth read-write configuration directory is named 'conf-rw' and is optional.
            This directory is where MiniMyth put files that it creates.
            For example, when MiniMyth saves game configurations it saves them in this directory.
            This directory is only required when you are using a MiniMyth feature that saves files across reboot.
            This directory must be read-write.
            In addition, if this directory is on a TFTP server,
            then you need to be sure that the TFTP server is configured to allow file creation not just file upload.
          </p>
          <p>
            MiniMyth looks for the MiniMyth configuration directories in the MiniMyth boot directory.
            If neither the
            <a href="#bootline">boot line</a>
            nor the
            <a href="#minimyth_conf">MiniMyth configuration file</a>
            provide
            '<a href="document-minimyth_conf.html#MM_MINIMYTH_BOOT_URL">MM_MINIMYTH_BOOT_URL</a>',
            then MiniMyth 'guesses' the location of the boot directory as follows.
            If MiniMyth 'guesses' that
            <a href="document-boot.html#network">network boot</a>
            was used,
            then MiniMyth assumes that the boot directory is the directory on the TFTP server that contains the boot loader
            (i.e. url="tftp://${MM_TFTP_SERVER}${MM_TFTP_ROOTDIR)/").
            If MiniMyth 'guesses' that
            <a href="document-boot.html#local">local boot</a>
            was used,
            then MiniMyth assumes that the boot directory is the directory on the local file system name '/minimyth'
            (i.e. url="file:/minimyth/").
            MiniMyth makes the 'guess' based on whether or not the boot file name is contained in DHCP's DHCPOFFER message
            (using either the 'file' field or the 'bootfile' option).
          </p>
          <p>
            In practice, this means that
            if you network boot MiniMyth
            then you put the MiniMyth configuration directories in the same directory on the TFTP server as the network boot loader
            (called 'pxelinux.0' when using PXELINUX), and that
            if you local boot MiniMyth,
            then you put the MiniMyth configuration directories at the root of the partition specified by
            <a href="#MM_MINIMYTH_BOOT_DEVICE">MM_MINIMYTH_BOOT_DEVICE</a>
            which MiniMyth will automatically mount at the mount point '/minimyth'.
          </p>
          <p>
            Once MiniMyth has determined the boot directory (lets call it '{boot}'),
            then MiniMyth looks for read-only configuration files
            first as the file '{boot}/conf/{hostname}/{file}' and
            second as the file '{boot}/conf/default/{file}',
            and looks for read-write configuration files
            as the file '{boot}/conf-rw/{hostname}+{file}',
            where '{hostname}' is the hostname of the MiniMyth system
            and '{file}' is the name of the configuration file.
          </p>
        </div>
        <div id="format" class="section">
          <div class="heading">Format of configuration files</div>
          <p>
            Many of MiniMyth's configuration files are ASCII text.
            In some cases,
            if the ASCII text configuration file uses the wrong character(s) to represent a line break,
            then the MiniMyth software using the configuration file will fail to work correctly.
            Unfortunately, different operating systems use different ASCII characters to represent a line break:
            Unix/Linux uses LF, Mac OS uses CR and DOS/Windows uses CRLF.
            If you transfer, create or edit ASCII text files using an operating system other than Unix/Linux,
            then it is likely to use the wrong ASCII character(s) to represent a line break.
          </p>
          <p>
            Whether or not a text editor running on Linux lets you know
            that file contains non-Linux line breaks is editor dependent.
            Therefore, a lack of visible strange characters at the end of each line
            does not mean that the file has only Linux line breaks.
            Whether or not a text editor running on Linux converts non-Linux line breaks to Linux line breaks is editor dependent.
            Therefore, saving a file transfered, created or edited on a different operating system
            using a text editor running on Linux does not mean that the file will have only Linux line breaks.
          </p>
          <p>
            The best way to ensure that you do not run into this problem is to transfer, create and edit
            all ASCII text configuration files on Linux.
            However, if you did transfer, create or edit an ASCII text configuration file
            on a computer running Mac OS or DOS/Windows,
            then you can use the
            <a href="http://linuxcommand.org/man_pages/dos2unix1.html">dos2unix</a>
            command to ensure that the file contains only Linux line breaks.
          </p>
        </div>
        <div id="minimyth_conf" class="section">
          <div class="heading">Configuration obtained from the MiniMyth configuration file</div>
          <p>
            The MiniMyth configuration file is called 'minimyth.conf'.
            The MiniMyth configuration file is required.
            You can find information on the configuration that can be obtained from MiniMyth configuration file in the
            <a href="document-minimyth_conf.html">minimyth.conf description</a>.
          </p>
        </div>
        <div id="minimyth_pm" class="section">
          <div class="heading">Configuration obtained from the MiniMyth configuration package</div>
          <p>
            The MiniMyth configuration package is called 'minimyth.pm'.
            The MiniMyth configuration package is optional.
            Whether or not 'minimyth.pm' is retrieved depends on
            '<a href="document-minimyth_conf.html#MM_MINIMYTH_FETCH_MINIMYTH_PM">MM_MINIMYTH_FETCH_MINIMYTH_PM</a>'.
          </p>
          <p>
            MiniMyth executes the MiniMyth configuration package as early as possible during startup and shutdown.
            At startup, MiniMyth executes the package's 'start' method
            after retrieving and importing (but not processing) the MiniMyth configuration file and
            after updating DHCP configuration.
            At shutdown, MiniMyth executes the package's 'stop' method
            before running any of MiniMyth's built in shutdown packages.
          </p>
          <p>
            As mentioned above, 'minimyth.pm' defines a perl package.
            The perl package must define the class 'init::minimyth'.
            If you want to run commands during startup, then the 'init::minimyth' class must contain a method named 'start'
            that accepts a pointer to the perl class 'MiniMyth'.
            If you want to run commands during shutdown, then the 'init::minimyth' class must contain a method named 'stop'
            that accepts a pointer to the perl class 'MiniMyth'.
            The following is a stub for the perl package defining 'init::minimyth':
          </p>
          <pre>
package init::minimyth;

use strict;
use warnings;

use MiniMyth ();

sub start
{
    my $self     = shift;
    my $minimyth = shift;

    return 1;
}

sub stop
{
    my $self     = shift;
    my $minimyth = shift;

    return 1;
}

1;
          </pre>
          <p>
            For example uses of the 'minimyth.pm', look at
            <a href="conf/minimyth.pm">the example minimyth.pm</a>.
          </p>
        </div>
        <div id="misc" class="section">
          <div class="heading">Configuration obtained from miscellaneous configuration files</div>
          <p>
            MiniMyth can override the following configuration files:
          </p>
          <dl>
            <dt id="asound_conf">asound.conf</dt>
            <dd>
              <p>
                The ASLA configuration file.
                MiniMyth will use this file as the '/etc/asound.conf'.
                Whether or not 'asound.conf' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_AUDIO_FETCH_ASOUND_CONF">MM_AUDIO_FETCH_ASOUND_CONF</a>'.
              </p>
              <p>
                MiniMyth should be able to create a working '/etc/asound.conf' file.
                Therefore, if you need to modify the auto-generated '/etc/asound.conf' file,
                then please
                <a href="http://www.minimyth.org/forum/">let us know</a>
                the modifications required.
              </p>
            </dd>
            <dt id="asound_state">asound.state</dt>
            <dd>
              <p>
                The ASLA state file.
                MiniMyth will use this file as the '/etc/asound.state'.
                Whether or not 'asound.state' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_AUDIO_FETCH_ASOUND_STATE">MM_AUDIO_FETCH_ASOUND_STATE</a>'.
              </p>
              <p>
                MiniMyth should be able to configure the audio controls correctly.
                Therefore, if you need to use an '/etc/asound.state' file in order to configure the audio controls correctly,
                then please
                <a href="http://www.minimyth.org/forum/">let us know</a>
                the changes that you needed to make to the audio controls.
              </p>
            </dd>
            <dt id="authorized_keys">authorized_keys</dt>
            <dd>
              <p>
                An SSH authorized keys file.
                This file contains the public keys of users that are allowed to connect to the SSH server
                as the user 'root' using public key authentication.
                The format of this file must be in the format of an
                <a href="http://www.openssh.org/">OpenSSH</a>
                authorized keys file.
                Whether or not 'authorized_keys' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_SSH_SERVER_ENABLED">MM_SSH_SERVER_ENABLED</a>'.
              </p>
            </dd>
            <dt id="ca_bundle_crt">ca-bundle.crt</dt>
            <dd>
              <p>
                The bundle of digital certificates for trusted certificate authorities.
                Whether or not 'ca-bundle.crt' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_SECURITY_FETCH_CA_BUNDLE_CRT">MM_SECURITY_FETCH_CA_BUNDLE_CRT</a>'.
                This bundle of digital certificates for trusted certificate authorities will be prepended to
                the bundle of digital certificates for trusted certificate authorities included in MiniMyth.
              </p>
            </dd>
            <dt>crontab</dt>
            <dd>
              <p>
                The crontab file for user root.
                Whether or not 'crontab' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_CRON_FETCH_CRONTAB">MM_CRON_FETCH_CRONTAB</a>'.
              </p>
            </dd>
          </dl>
          <dl>
            <dt id="credentials_cifs">credentials_cifs</dt>
            <dd>
              <p>
                A CIFS credentials file for mount.cifs.
                This file contains the username and password that allows MiniMyth to mount CIFS network shares.
                The format of this file must be in the format described in
                <a href="http://www.samba.org/samba/docs/man/manpages-3/mount.cifs.8.html">the mount.cifs man page</a>.
                Whether or not 'credentials_cifs' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_SECURITY_FETCH_CREDENTIALS_CIFS">MM_SECURITY_FETCH_CREDENTIALS_CIFS</a>'.
              </p>
              <p>
                <em>WARNING:</em>
                Because access to the TFTP server storing this file is not secure,
                <em>the credentials in this file should not be trusted</em>.
                You should assume that because it can be compromised that it will be compromised.
                Therefore, when using network boot,
                do not allow anything identifying itself using these credentials to do anything that could be harmful.
              </p>
            </dd>
          </dl>
          <dl>
            <dt id="huludesktop_data">huludesktop.data</dt>
            <dd>
              <p>
                The Hulu Desktop configuration file.
                MiniMyth will use this file as the '/home/minimyth/.local/share/.huludesktop.data' file in the MiniMyth file system.
                Whether or not 'huludesktop.data' is saved and retrieved depends on
                '<a href="document-minimyth_conf.html#MM_HULU_STORE_HULUDESKTOP_DATA">MM_HULU_STORE_HULUDESKTOP_DATA</a>'.
              </p>
              <p>
                This file contains a subset of the Hulu Desktop configuration information.
                It contains the system independent information.
                For example, it contains the Hulu Desktop state and user profile settings.
                It does not contain system dependent information.
                For example, it does not contain application window size and location, Adobe Flash Player location or remote control type.
              </p>
            </dd>
          </dl>
          <dl>
            <dt id="LCDd_conf">LCDd.conf</dt>
            <dd>
              <p>
                The LCDproc daemon ('LCDd') configuration file.
                MiniMyth will use this file as the '/etc/LCDd.conf' file in the MiniMyth file system.
                Whether or not 'LCDd.conf' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LCDPROC_FETCH_LCDD_CONF">MM_LCDPROC_FETCH_LCDD_CONF</a>'.
              </p>
            </dd>
            <dt id="lircd_conf">lircd.conf</dt>
            <dd>
              <p>
                The LIRC daemon ('lircd') configuration file.
                MiniMyth will use this file as the '/etc/lirc/lircd.conf' file in the MiniMyth file system.
                Whether or not 'lircd.conf' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCD_CONF">MM_LIRC_FETCH_LIRCD_CONF</a>'.
              </p>
              <p>
                LIRC supports arbitrary alphanumeric key names.
                However,
                because MiniMyth uses lircd to present lircd supported remote controls as Linux input event devices,
                MiniMyth only supports key names that are Linux key event names.
                Because the LIRC namespace uses the Linux key event names,
                you can list the valid key names by running the command 'irrecord&#160;--list-namespace'.
              </p>
              <p>
                In addition,
                if you want a key to be treated as a remote control button rather than a mouse/joystick button,
                then do not use an LIRC namespace key name with the BTN_ prefix.
                MiniMyth uses eventlircd,
                which assumes that BTN_ prefix names are mouse/joystick buttons handled by Xorg.
              </p>
              <p>
                Finally,
                if you want MiniMyth to handle a remote control button using its built-in
                <a href="#lircrc">lircrc</a>
                files,
                then use an LIRC namespace key name that MiniMyth uses in its built-in lircrc files.
                While there exist multiple possible KEY_* names for that same remote control button,
                MiniMyth tends to use only one of the possible KEY_* names in its built-in lircrc files.
                For example,
                while the "0" remote control button might generate KEY_0, KEY_KP0 or KEY_NUMERIC_0,
                MiniMyth's lircrc files only expect it to generate KEY_NUMERIC_0.
                Therefore,
                you need to be sure that your LIRC daemon configuration file maps each remote control button
                to the KEY_* name expected by MiniMyth's built-in lircrc files.
              </p>
            </dd>
            <dt id="lircmd_conf">lircmd.conf</dt>
            <dd>
              <p>
                The LIRC mouse daemon ('lircmd') configuration file.
                MiniMyth will use this file as the '/etc/lirc/lircmd.conf' file in the MiniMyth file system.
                Whether or not 'lircmd.conf' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCMD_CONF">MM_LIRC_FETCH_LIRCMD_CONF</a>'.
              </p>
            </dd>
            <dt id="lircrc">lircrc</dt>
            <dd>
              <p>
                The LIRC configuration file.
                MiniMyth will use this file as the '/etc/lirc/lircrc' file in the MiniMyth file system.
                Whether or not 'lircrc' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCRC">MM_LIRC_FETCH_LIRCRC</a>'.
              </p>
              <p>
                While LIRC supports limiting actions to specific remote controls using 'remote&#160;=&#160;{remote-name}',
                MiniMyth does not.
                In MiniMyth, all remote controls appear as 'remote&#160;=&#160;devinput'.
                Therefore, do not include any 'remote&#160;=&#160;{remote-name}' in any lircrc files.
              </p>
            </dd>
            <dt id="lircrc_minimyth">lircrc.minimyth</dt>
            <dd>
              <p>
                The LIRC configuration file for minimyth.
                MiniMyth will use this file as the minimyth section of '/etc/lirc/lircrc' file (the '/etc/lirc/lircrc.d/minimyth' in the MiniMyth file system).
                Whether or not 'lircrc.mplayer' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCRC_MINIMYTH">MM_LIRC_FETCH_LIRCRC_MINIMYTH</a>'.
              </p>
            </dd>
            <dt id="lircrc_mythtv">lircrc.mythtv</dt>
            <dd>
              <p>
                The LIRC configuration file for mythtv.
                MiniMyth will use this file as the mythtv section of '/etc/lirc/lircrc' file (the '/etc/lirc/lircrc.d/mythtv' in the MiniMyth file system).
                Whether or not 'lircrc.mythtv' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCRC_MYTHTV">MM_LIRC_FETCH_LIRCRC_MYTHTV</a>'.
              </p>
            </dd>
            <dt id="lircrc_mplayer">lircrc.mplayer</dt>
            <dd>
              <p>
                The LIRC configuration file for mplayer.
                MiniMyth will use this file as the mplayer section of '/etc/lirc/lircrc' file (the '/etc/lirc/lircrc.d/mplayer' in the MiniMyth file system).
                Whether or not 'lircrc.mplayer' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCRC_MPLAYER">MM_LIRC_FETCH_LIRCRC_MPLAYER</a>'.
              </p>
            </dd>
            <dt id="lircrc_vlc">lircrc.vlc</dt>
            <dd>
              <p>
                The LIRC configuration file for vlc.
                MiniMyth will use this file as the vlc section of '/etc/lirc/lircrc' file (the '/etc/lirc/lircrc.d/vlc' in the MiniMyth file system).
                Whether or not 'lircrc.vlc' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCRC_VLC">MM_LIRC_FETCH_LIRCRC_VLC</a>'.
              </p>
            </dd>
            <dt id="lircrc_xine">lircrc.xine</dt>
            <dd>
              <p>
                The LIRC configuration file for xine.
                MiniMyth will use this file as the xine section of '/etc/lirc/lircrc' file (the '/etc/lirc/lircrc.d/xine' in the MiniMyth file system).
                Whether or not 'lircrc.xine' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_LIRC_FETCH_LIRCRC_XINE">MM_LIRC_FETCH_LIRCRC_XINE</a>'.
              </p>
            </dd>
            <dt id="microcode_dat">microcode.dat</dt>
            <dd>
              <p>
                The Intel CPU microcode data file.
                MiniMyth will use this file as the '/etc/firmware/microcode.dat' file in the MiniMyth file system,
                and load the microcode during initialization when '/etc/firmware/microcode.dat' is present.
                Whether or not 'microcode.dat' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_CPU_FETCH_MICROCODE_DAT">MM_CPU_FETCH_MICROCODE_DAT</a>'.
              </p>
              <p>
                The latest Intel microcode can be found by
                <a href="http://www.intel.com/content/www/us/en/search.html">searching</a>
                the
                <a href="http://www.intel.com/">Intel web site</a>
                for
                <a href="http://www.intel.com/content/www/us/en/search.html?keyword=Linux*%20Processor%20Microcode%20Data%20File">Linux* Processor Microcode Data File"></a>
              </p>
            </dd>
            <dt id="raopkey_rsa">RAOPKey.rsa</dt>
            <dd>
              <p>
                The Apple AirPlay private key file.
                MiniMyth will use this file as the '/home/minimyth/.mythtv/RAOPKey.rsa'.
                Whether or not 'RAOPKey.rsa' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_AIRPLAY_FETCH_RAOPKEY_RSA">MM_AIRPLAY_FETCH_RAOPKEY_RSA</a>'.
              </p>
            </dd>
            <dt id="rc_maps_cfg">rc_maps.cfg</dt>
            <dd>
              <p>
                The <a href="http://dev.man-online.org/man1/ir-keytable/">ir-keytable</a> auto load configuration file.
                This file is part of the 
                <a href="http://linuxtv.org/downloads/v4l-dvb-apis/remote_controllers.html">video4linux remote control API</a>.
              </p>
            </dd>
            <dt id="ssh_host_rsa_key">ssh_host_rsa_key</dt>
            <dd>
              <p>
                An SSH private RSA identity file.
                This file is the host key of the SSH server.
                The format of these files must be in the format of an
                <a href="http://www.openssh.org/">OpenSSH</a>
                private RSA key as generated by
                <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-keygen">ssh-keygen</a>.
                Whether or not 'ssh_host_rsa_key' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_SSH_SERVER_ENABLED">MM_SSH_SERVER_ENABLED</a>'.
              </p>
              <p>
                <em>WARNING:</em>
                Because access to the TFTP server storing this file is not secure,
                <em>the SSH RSA private key in this file should not be trusted</em>.
                You should assume that because it can be compromised that it will be compromised.
                Therefore, when using network boot,
                do not allow anything identifying itself using this identity file to do anything that could be harmful.
              </p>
            </dd>
            <dt id="xbindkeysrc">xbindkeysrc</dt>
            <dd>
              <p>
                The X Window System (Xorg) bind keys file.
                MiniMyth will use this file as the '/etc/X11/xbindkeysrc' file in the MiniMyth file system.
                Whether or not 'xbindkeysrc' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_X_FETCH_XBINDKEYSRC">MM_X_FETCH_XBINDKEYSRC</a>'.
              </p>
              <p>
                This file is loaded by MiniMyth's build-in '/etc/X11/xinit/xinitrc' file using the 'xbinkeys' utility.
                Therefore, if you override '/etc/X11/xinit/xinitrc', then you will need to load '/etc/X11/xbindkeysrc'.
              </p>
            </dd>
            <dt id="xinitrc">xinitrc</dt>
            <dd>
              <p>
                The X Window System (Xorg) startup file.
                MiniMyth will use this file as the '/etc/X11/xinit/xinitrc' file in the MiniMyth file system.
                Whether or not 'xinitrc' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_X_FETCH_XINITRC">MM_X_FETCH_XINITRC</a>'.
              </p>
            </dd>
            <dt id="xmodmaprc">xmodmaprc</dt>
            <dd>
              <p>
                The X Window System (Xorg) keyboard map file.
                MiniMyth will use this file as the '/etc/X11/xmodmaprc' file in the MiniMyth file system.
                Whether or not 'xmodmaprc' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_X_FETCH_XMODMAPRC">MM_X_FETCH_XMODMAPRC</a>'.
              </p>
              <p>
                This file is loaded by MiniMyth's build-in '/etc/X11/xinit/xinitrc' file using the 'xmodmap' utility.
                Therefore, if you override '/etc/X11/xinit/xinitrc', then you will need to load '/etc/X11/xmodmaprc'.
              </p>
            </dd>
            <dt id="xorg_conf">xorg.conf</dt>
            <dd>
              <p>
                The X Window System (Xorg) configuration file.
                MiniMyth will use this file as the '/etc/X11/xorg.conf' file in the MiniMyth file system.
                Whether or not 'xorg.conf' is retrieved depends on
                '<a href="document-minimyth_conf.html#MM_X_FETCH_XORG_CONF">MM_X_FETCH_XORG_CONF</a>'.
              </p>
              <p>
                MiniMyth should be able to create a working '/etc/X11/xorg.conf' file.
                Therefore, if you need to modify the auto-generated '/etc/X11/xorg.conf' file,
                then please
                <a href="http://www.minimyth.org/forum/">let us know</a>
                the modifications required.
              </p>
            </dd>
          </dl>
          <p>
            If you want to override any other configuration files,
            then you will need to use the
            <a href="#minimyth_pm">MiniMyth configuration package</a>.
          </p>
        </div>
      </div>
      <div class="footer">
        <hr />
        <div class="html5">
          <a href="http://www.w3.org/"><img
              title="HTML5"
              src="image/HTML5_Logo_32.png"
              alt="HTML5" /></a>
        </div>
        <div class="valid">
          <a href="http://validator.w3.org/check?uri=referer"><img
              style="border:0;width:88px;height:31px"
              title="Valid HTML5!"
              src="image/validicons-blueHTML.gif"
              alt="Valid HTML5!" /></a>
          <a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"><img
              style="border:0;width:88px;height:31px"
              title="Valid CSS3!"
              src="image/validicons-blueCSS.gif"
              alt="Valid CSS3!" /></a>
        </div>
        <div class="version">
          Last Updated on 2012-07-03
        </div>
        <div class="address">
          &#60;&#160;mailto&#160;:&#160;webmaster&#160;at&#160;minimyth&#160;dot&#160;org&#160;&#62;
        </div>
        <div class="copyright">
          &#169; 2006-2012 Paul Bender
        </div>
      </div>
    </div>
  </body>
</html>
